package cn.demoncat.util.mysql.constant;

import cn.demoncat.util.lang.ObjectUtil;
import cn.demoncat.util.lang.StringUtil;
import org.apache.commons.lang3.StringUtils;

/**
 * 常量 
 * 
 * @author 延晓磊
 *
 * @since 2019年12月10日
 */
public class DbGenConstant {

	/**
	 * baseType
	 * 
	 * @author 延晓磊
	 *
	 * @since 2019年12月10日
	 */
	public enum BaseType{
		// BaseEntity
		Common("", new String[]{"id"} ),
		// BaseTreeEntity
		Tree("Tree", new String[]{"id","name","parentId","nodeLevel","subCount","sort","version"}),
		// BaseReportEntity
		Report("Report", new String[]{"id","type","item","title","count","sum","date","year","month","day","hour","createTime"})
		
		;
	 
		// Base类型："" ，Tree
		private final String baseType;
		// POJO中自带的属性（生成时排除）
		private final String[] linealAttrs;
		
		/**
		 * 获取枚举
		 * 
		 * @param type
		 * @return
		 * 
		 * @author 延晓磊
		 *
		 * @since 2019年12月10日
		 */
		public static BaseType get(String type) {
			if (StringUtils.isBlank(type)) {
				return BaseType.Common;
			}else {
				return ObjectUtil.toDefault(BaseType.valueOf(StringUtil.firstUpper(type.toLowerCase())), BaseType.Common);
			}
		}
		
		BaseType(String baseType, String[] linealAttrs) {
			this.baseType = baseType;
			this.linealAttrs = linealAttrs;
		}

		public String getBaseType() {
			return baseType;
		}

		public String[] getLinealAttrs() {
			return linealAttrs;
		}
		 
	}
}
